Video-storage network having increased performance

ABSTRACT

A video storage system includes a storage area network and at least one local cache storage unit. Both the storage mechanism and the local cache storage unit store at least some content in common. In response to a react request, a read director determines which of the storage mechanism and local cache storage unit contains the requested content. Upon determining that the requested content resides on the local cache storage unit, the read director directs the content request to the local cache storage unit, thereby reducing the demand on the storage mechanism. If the content does not reside on the local cache storage unit, read director directs the request to the storage mechanism, but if the content is unavailable, the content request will be filled with filler data from a filler data source.

CROSS REFERENCE TO RELATED APPLICATION

This application claims the benefit, under 35 U.S.C. §365 ofInternational Application PCT/US03/26128, filed Aug. 21, 2003, which waspublished in accordance with PCT Article 21(2) on Mar. 11, 2004 inEnglish and which claims the benefit of U.S. provisional patentapplication No. 60/406,623, filed Aug. 28, 2002.

TECHNICAL FIELD

This invention relates to a video storage network for storing videoinformation.

BACKGROUND ART

In the past, video editing occurred on stand-along devices, typicallyvideotape machines. An editor seeking to create a video segmentcomprised of separate clips would queue the clips in the desired orderon one or more source machines and then select desired clip forrecording. The advent of shared video storage greatly changed the mannerin which video editing now occurs. With present day shared storagenetworks, multiple users can each edit a copy of the same content usingnon-linear editing techniques. Many present-day video storage networksoften place limits on the number of users because of bandwidthconstraints. The switch fabric of such video storage networks often willnot allow more than a limited number of users to access the storagefacility. Overcoming this drawback by providing additional linksincreases overall cost.

Thus, there is need for a technique for providing a shared video storagesystem that overcomes the aforementioned disadvantage.

BRIEF SUMMARY

Briefly, in accordance with a preferred embodiment, there is provided astorage system for storing content, and preferably, video files. Thestorage system of the present principles includes a storage mechanism, alarge disk drive, or one or more Redundant Arrays of Inexpensive DiskDrives (RAIDs). The storage system further includes at least one localcache storage unit for mirroring at least a portion of the contentstored on the storage mechanism. Thus, a user can obtain such mirroredcontent from the local cache storage unit rather than the storagemechanism, thus reducing the bandwidth demands on the storage mechanism.A write director is coupled to the storage mechanism and the one localcache storage unit for controlling the incoming content written into thestorage mechanism and the local cache storage unit. A cache managermanages the content coherency between the storage mechanism and thelocal cache storage unit so that at least some of the content on thestorage mechanism also exists on the local cache storage unit and viceversa. A read director responds to a content request from a user anddirects the request to one of the storage mechanism and the local cachestorage unit depending on the content availability of each. In this way,if the content is available on the local cache storage unit, the userreads from that unit rather than the storage mechanism. A storagemechanism access manager monitors the reading of content from, and thewriting of content to the storage mechanism to control the read andwrite managers accordingly.

BRIEF SUMMARY OF THE DRAWING

FIG. 1 depicts a block schematic diagram of a storage system inaccordance with a preferred embodiment of the present principles.

DETAILED DESCRIPTION

FIG. 1 depicts a storage system 10 in accordance with a preferredembodiment of the present principles that affords improved efficiency.At its heart, the storage system 10 includes a storage mechanism 12comprised of a single disk drive, or one or more Redundant Arrays ofInexpensive Disk Drives (RAIDs) that receive content for subsequentaccess by a user. Typically, the storage mechanism 12 stores video fileswith or without embedded audio for editing and/or broadcast. Having allusers access the storage mechanism 12 at any given time will constrainbandwidth, thus imposing limitations on the maximum number of users. Toovercome this disadvantage, the storage system 10 of the presentprinciples also includes at least one local cache storage unit 14, andpreferably, a plurality of such units. Each local cache storage unit 14typically takes the form of a disk drive or one or more RAIDs.

As discussed in greater detail below, the local cache storage unit 14mirrors at least some of the content stored on the storage mechanism 12.In other words, the local cache storage unit 14 stores at least some ofthe same files as the storage mechanism 12. In this way, a user seekingto access a particular file stored both on the storage mechanism 12 andon the local cache storage unit 14 can access the local cache storageunit rather than the storage mechanism. Accessing the local cachestorage unit 14 reduces bandwidth demand on the storage mechanism 12. Inpractice, different groups of users each can have a dedicated localcache storage unit. Alternatively, assignment of a local cache storageunit 14 to a group of users can occur on a dynamic basis.

A write director 16 controls the writing of input content from anexternal source (not shown) to each of storage mechanism 12 and thelocal cache. Such input content can include live video received from acamera or a satellite feed, or previously recorded video. In practice,the write director 16 takes the form of a programmed processor,hard-wired logic circuit, or field programmable array (FPGA) or the likethat responds to control information received from a storage mechanismaccess manager 17 that monitors the read and write load on the storagemechanism 12. In practice, the storage mechanism Access Manager 17 takesthe form of a programmed processor, hard-wired logic circuit, or fieldprogrammable array (FPGA). In accordance with the output signal from thestorage mechanism Access Manager 17, the write director 16 directsincoming content to either or both of the storage mechanism 12 and thelocal cache storage unit 14.

A cache manager 18, typically in the form of a programmed processor,hard-wired logic circuit, or field programmable array (FPGA) or thelike, controls the writing of content between the local cache storageunit 14 and the storage mechanism 12 in accordance with control signalsfrom the local cache storage unit to maintain content coherency. Inother words, the cache manager 18 maintains at least some content incommon on the storage mechanism 12 and the local cache storage unit 14.To accomplish this task, the cache manager 18 undertakes backgroundcopying of files to the local cache storage unit 14 from the storagemechanism 12 (“trickle down”). Likewise, the cache manager 18 undertakesbackground copying of files to the storage mechanism 12 from the localcache storage unit 14 (“trickle up”). Such trickle up becomes necessarywhen a user edits content for subsequent use by others. The rate atwhich “trickling down” and “trickling up” occurs is a function of theoverall bandwidth demand on the storage mechanism 12. The cache manager18 also manages the storage capacity of the local cache storage unit 14by deleting infrequently accessed files. Should the available storagecapacity of the local cache storage unit 14 exceed a prescribed level,the cache manager 18 will delete the least recently accessed file first.Thereafter, the cache manager 18 will delete the next least recentlyaccessed file and so on until the available storage capacity of thelocal cache storage unit 14 reaches an acceptable level.

To read content from the storage system 10, a user enters a read requestreceived by a read director 20. In practice, the read director 20 takesthe form of a programmed processor that monitors the content on both thestorage mechanism 12 and the local cache storage unit 14. Upon receiptof a read request, the read director 20 determines whether the requestedcontent resides on the local cache storage unit 14. If so, the readdirector 20 sends a command to a read source selector 22, typically amultiplexer, to designate the local cache storage unit 14 as the sourceof the requested content. Thus, under such circumstances, the readdirector 20 “redirects” the read request to the local cache storage unit14. In the event the local cache storage unit 14 lacks the requestedcontent, the read director 20 causes the source selector 22 to selectthe storage mechanism 12. Alternatively, the read director 20 will causeread source selector 22 to select a storage unit 24 provide the userwith filler content in the event the local cache storage unit 14 can notprovide the requested content and insufficient bandwidth exists topermit access to the storage mechanism 12. When the local cache storageunit 14 lacks the requested content, the read director 20 alerts thecache manager 18. In response, the cache manager 18 initiates a trickledown copy operation to transfer the content from the storage mechanism12 to the local cache storage unit 14.

In operation, the storage system 10 advantageously offers improvedperformance by reducing bandwidth demands on the storage mechanism 12.The local cache storage unit 14 serves to mirror at least some of thecontent on the storage mechanism 12, thus providing an alternate sourcefor supplying such content to a user. The cache manager 18 carefullymanages the local cache storage unit 14 in response to the state of thestorage mechanism 12, as monitored by the storage mechanism accessmanager 17, to assure that local cache storage unit will contain therequisite content. The storage mechanism access manager controls thereading of content from, and the writing of content to the storagemechanism during intervals of high bandwidth demand.

The foregoing describes a storage network having improved performance.

1. A storage system, comprising: a storage mechanism for storing content; at least one local cache storage unit for mirroring at least a portion of the content stored on the storage mechanism; a write director coupled to the storage mechanism and to the at least one local storage cache for controlling content written into the storage mechanism and to the at least one local storage cache; a cache manager for managing content copying between the storage mechanism and the at least one local storage cache to maintain at least partial content coherency; a read director responsive to a request for content from a user for directing said content request to a selected one of the at least one local storage cache and the storage mechanism depending on content availability of each; and a storage mechanism access manager for monitoring read and write loading of the storage mechanism and for controlling the read and write directors and the cache manager in accordance with the storage mechanism read and write loading, wherein controlling the write directors includes reducing writing to the storage mechanism.
 2. The storage system of claim 1 wherein the cache manager manages the storage capacity of the local cache storage unit by successively deleting a least accessed file until the local cache storage unit has an available storage capacity above a prescribed level.
 3. The storage system of claim 1 further comprises a filler storage unit for storing filler content and wherein the read director directs the read request to the filler storage unit to provide filler content when the requested content is unavailable from the local storage cache unit and insufficient bandwidth exists to access the storage mechanism.
 4. The storage system of claim 1 wherein the storage mechanism further comprises at least one disk drive.
 5. The storage system of claim 1 wherein the storage mechanism further comprises at least one Redundant Array of inexpensive Disk Drives (RAID).
 6. The storage system of claim 1 wherein the local cache storage unit further comprises at least one disk drive.
 7. The storage system of claim 1 wherein the local cache storage unit further comprises at least one Redundant Array of inexpensive Disk Drives (RAID).
 8. The storage system according to claim 1 wherein the read director redirects a request for content to the local cache storage unit when the requested content is available at the local cache storage unit to reduce bandwidth requirements on the storage mechanism.
 9. The storage system according to claim 1 wherein the cache manager copies at least some content from the storage mechanism to the local cache storage unit previously unavailable on the local cache storage unit.
 10. The system according to claim 1 wherein the storage mechanism access manager controls the read and write directors to reduce reading from and writing to the storage mechanism during intervals of limited storage mechanism bandwidth.
 11. A method for storing content, comprising the steps of: writing incoming content to at least one of a Storage Area Network (storage mechanism) and a local cache storage unit; monitoring content coherency between the storage mechanism and the local cache storage unit; copying content between the storage mechanism and the local cache storage unit in accordance with the content coherency therebetween directing a request for content from a user to a selected one of the storage mechanism and the local cache storage unit depending on the content availability of each monitoring read and write loading of the storage mechanism; and controlling reading of content from, and writing of content to the storage mechanism in accordance with the storage mechanism read and write loading, wherein controlling includes reducing writing to the storage mechanism.
 12. The method according to claim 11 wherein the step of directing the content request further comprises re-directing the content request to the local cache storage unit if the requested content resides at the local cache storage unit.
 13. The method according to claim 11 wherein the step of directing the content request further comprises re-directing the content request to a filler storage unit to provide filler content if the requested content does not reside at the local cache storage unit and insufficient bandwidth exists to access the storage mechanism.
 14. The method according to claim 13 further comprising the step of writing content from the storage mechanism to the local cache storage unit.
 15. The method according to claim 11 further comprising the step of writing content from the local cache storage unit to the storage mechanism.
 16. The method according to claim 11 wherein the step of controlling reading of content from, and writing of content to the storage mechanism further comprises the step of restricting access to the storage mechanism during intervals of high bandwidth demand. 